package exercicios_threads.threads_aracaju.corrida_sapos;
/**
 * <h2>Exercício - Threads</h2>
 * Aplicacao que simula uma corrida de sapos usando Threads.<br>
 * 
 * @author dennisxsf@gmail.com - Dennis Fernandes
 * @version
 * 			<p><b>v1.0 (07/09/2014) - Dennis Fernandes</b><br>
 * 				- Criacao da classe CorridaDeSapos<br>
 * 				- Criacao das constantes {@link #NUN_SAPOS} e {@link #DISTANCIA}<br>
 * 				- Criacao do metodo {@link #main(String[])}
 * 			</p>
 * @see {@link Thread}
 */
public class CorridaDeSapos {
	/**
	 *  Quantidade de sapos na corrida
	 */
	final static int NUN_SAPOS = 5;
	/**
	 * Distância da corrida em centimetros
	 */
	final static int DISTANCIA = 500;
	/**
	 * Método principal
	 * @param args
	 */
	public static void main(String[] args) {
		// Criando as threads para representar os sapos correndo
		SapoCorrendo sapo_01 = new SapoCorrendo("Sapo_01",DISTANCIA);
		SapoCorrendo sapo_02 = new SapoCorrendo("Sapo_02",DISTANCIA);
		SapoCorrendo sapo_03 = new SapoCorrendo("Sapo_03",DISTANCIA);
		SapoCorrendo sapo_04 = new SapoCorrendo("Sapo_04",DISTANCIA);
		SapoCorrendo sapo_05 = new SapoCorrendo("Sapo_05",DISTANCIA);
		// Estabelecendo prioridades para as threads
		sapo_01.setPriority(Thread.MIN_PRIORITY);
		sapo_02.setPriority(Thread.MIN_PRIORITY);
		sapo_03.setPriority(Thread.NORM_PRIORITY);
		sapo_04.setPriority(Thread.MAX_PRIORITY);
		sapo_05.setPriority(Thread.MAX_PRIORITY);
		// Iniciando as threads
		sapo_01.start();
		sapo_02.start();
		sapo_03.start();
		sapo_04.start();
		sapo_05.start();
	}
	//public static void main(String[] args) {
	//	for (int i = 0; i < NUN_SAPOS; i++) {
	//		new SapoCorrendo("Sapo_" + i, DISTANCIA).start();
	//	}
	//}
}
